package com.klw.business.service;


import com.klw.business.domain.KlwWarningResults;

import java.util.List;

/**
 * 机器学习预测服务接口
 */
public interface IMLPredictionService {

    /**
     * 训练机器学习模型
     * @throws Exception 训练过程中可能出现的异常
     */
    void trainModel() throws Exception;

    /**
     * 预测单个学生的预警等级并保存结果
     * @param studentId 学生ID
     * @param semesterId 学期ID
     * @return 预警结果实体
     * @throws Exception 预测过程中可能出现的异常
     */
    KlwWarningResults predictAndSave(Long studentId, Long semesterId) throws Exception;

    /**
     * 批量预测指定学期所有学生的预警等级
     * @param semesterId 学期ID
     * @return 预警结果列表
     * @throws Exception 批量预测过程中可能出现的异常
     */
    List<KlwWarningResults> batchPredictAndSave(Long semesterId) throws Exception;

    /**
     * 检查模型是否已初始化
     * @return 模型是否可用
     */
    boolean isModelInitialized();
}
